// 泛型的接口

// 01-函数类型接口
/* interface ConfigFn {
    (value1:string, value2:string):string;
}

let setData:ConfigFn = function (value1:string,value2:string) {
    return value1 + value2
}

setData('name',' zhangsan ') */

// 02-泛型接口
// 第一种方法
/* interface ConfigFn {
    <T>(value1:T, value2?:T):T;
}
let getData:ConfigFn = function <T>(value1:T,value2:T):T {
    return value1
}
// getData<string>("T");
getData<number>(1234); */

// 泛型接口第二种方法
/* interface ConfigFn<T> {
    (value1:T, value2?:T):T;
}
function getData<T>(value1:T,value2:T):T {
    return value1
}

let myGetData:ConfigFn<string> = getData; 

myGetData('20')

// myGetData(20) */